home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / os2 / e33el2.zip / emacs / 19.33 / lisp / cp850-iso.el < prev    next >
Lisp/Scheme  |  1996-05-27  |  9KB  |  211 lines

  1. ;;; cp850-iso.el --- Enable editing of cp850 texts on an ISO 8859-1 system
  2.  
  3. ;; Copyright (C) 1996 Eberhard Mattes
  4.  
  5. ;; Author: Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
  6. ;; Keywords: i18n
  7.  
  8. ;; This file is part of GNU Emacs.
  9.  
  10. ;; GNU Emacs is free software; you can redistribute it and/or modify
  11. ;; it under the terms of the GNU General Public License as published by
  12. ;; the Free Software Foundation; either version 2, or (at your option)
  13. ;; any later version.
  14.  
  15. ;; GNU Emacs is distributed in the hope that it will be useful,
  16. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. ;; GNU General Public License for more details.
  19.  
  20. ;; You should have received a copy of the GNU General Public License
  21. ;; along with GNU Emacs; see the file COPYING.  If not, write to the
  22. ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  23. ;; Boston, MA 02111-1307, USA.
  24.  
  25. ;;; Commentary:
  26.  
  27. ;; Written by Eberhard Mattes.
  28.  
  29. ;;; Code:
  30.  
  31. (require 'disp-table)
  32.  
  33. (defvar cp850-iso-enabled nil)
  34.  
  35. (defconst cp850-iso-table
  36.   ;; CP850   ISO 8859-1                 ; POSTSCRIPT
  37.   '((?\200 . ?\307)                     ; Ccedilla
  38.     (?\201 . ?\374)                     ; udieresis
  39.     (?\202 . ?\351)                     ; eacute
  40.     (?\203 . ?\342)                     ; acircumflex
  41.     (?\204 . ?\344)                     ; adieresis
  42.     (?\205 . ?\340)                     ; agrave
  43.     (?\206 . ?\345)                     ; aring
  44.     (?\207 . ?\347)                     ; ccedilla
  45.     (?\210 . ?\352)                     ; ecircumflex
  46.     (?\211 . ?\353)                     ; edieresis
  47.     (?\212 . ?\350)                     ; egrave
  48.     (?\213 . ?\357)                     ; idieresis
  49.     (?\214 . ?\356)                     ; icircumflex
  50.     (?\215 . ?\354)                     ; igrave
  51.     (?\216 . ?\304)                     ; Adieresis
  52.     (?\217 . ?\305)                     ; Aring
  53.     (?\220 . ?\311)                     ; Eacute
  54.     (?\221 . ?\346)                     ; ae
  55.     (?\222 . ?\306)                     ; AE
  56.     (?\223 . ?\364)                     ; ocircumflex
  57.     (?\224 . ?\366)                     ; odieresis
  58.     (?\225 . ?\362)                     ; ograve
  59.     (?\226 . ?\373)                     ; ucircumflex
  60.     (?\227 . ?\371)                     ; ugrave
  61.     (?\230 . ?\377)                     ; ydieresis
  62.     (?\231 . ?\326)                     ; Odieresis
  63.     (?\232 . ?\334)                     ; Udieresis
  64.     (?\233 . ?\370)                     ; oslash
  65.     (?\234 . ?\243)                     ; sterling
  66.     (?\235 . ?\330)                     ; Oslash
  67.     (?\236 . ?\327)                     ; multiply
  68.     (?\237 . nil)                       ; florin
  69.     (?\240 . ?\341)                     ; aacute
  70.     (?\241 . ?\355)                     ; iacute
  71.     (?\242 . ?\363)                     ; oacute
  72.     (?\243 . ?\372)                     ; uacute
  73.     (?\244 . ?\361)                     ; ntilde
  74.     (?\245 . ?\321)                     ; Ntilde
  75.     (?\246 . ?\252)                     ; ordfeminine
  76.     (?\247 . ?\272)                     ; ordmasculine
  77.     (?\250 . ?\277)                     ; questiondown
  78.     (?\251 . ?\256)                     ; registered
  79.     (?\252 . ?\254)                     ; logicalnot
  80.     (?\253 . ?\275)                     ; onehalf
  81.     (?\254 . ?\274)                     ; onequarter
  82.     (?\255 . ?\241)                     ; exclamdown
  83.     (?\256 . ?\253)                     ; guillemotleft
  84.     (?\257 . ?\273)                     ; guillemotright
  85.     (?\260 . nil)                       ; (gray)
  86.     (?\261 . nil)                       ; (gray)
  87.     (?\262 . nil)                       ; (gray)
  88.     (?\263 . nil)                       ; (line)
  89.     (?\264 . nil)                       ; (line)
  90.     (?\265 . ?\301)                     ; Aacute
  91.     (?\266 . ?\302)                     ; Acircumflex
  92.     (?\267 . ?\300)                     ; Agrave
  93.     (?\270 . ?\251)                     ; copyright
  94.     (?\271 . nil)                       ; (line)
  95.     (?\272 . nil)                       ; (line)
  96.     (?\273 . nil)                       ; (line)
  97.     (?\274 . nil)                       ; (line)
  98.     (?\275 . ?\242)                     ; cent
  99.     (?\276 . ?\245)                     ; yen
  100.     (?\277 . nil)                       ; (line)
  101.     (?\300 . nil)                       ; (line)
  102.     (?\301 . nil)                       ; (line)
  103.     (?\302 . nil)                       ; (line)
  104.     (?\303 . nil)                       ; (line)
  105.     (?\304 . nil)                       ; (line)
  106.     (?\305 . nil)                       ; (line)
  107.     (?\306 . ?\343)                     ; atilde
  108.     (?\307 . ?\303)                     ; Atilde
  109.     (?\310 . nil)                       ; (line)
  110.     (?\311 . nil)                       ; (line)
  111.     (?\312 . nil)                       ; (line)
  112.     (?\313 . nil)                       ; (line)
  113.     (?\314 . nil)                       ; (line)
  114.     (?\315 . nil)                       ; (line)
  115.     (?\316 . nil)                       ; (line)
  116.     (?\317 . ?\244)                     ; currency
  117.     (?\320 . ?\360)                     ; eth
  118.     (?\321 . ?\320)                     ; Eth
  119.     (?\322 . ?\312)                     ; Ecircumflex
  120.     (?\323 . ?\313)                     ; Edieresis
  121.     (?\324 . ?\310)                     ; Egrave
  122.     (?\325 . ?\220)                     ; dotlessi
  123.     (?\326 . ?\315)                     ; Iacute
  124.     (?\327 . ?\316)                     ; Icircumflex
  125.     (?\330 . ?\317)                     ; Idieresis
  126.     (?\331 . nil)                       ; (line)
  127.     (?\332 . nil)                       ; (line)
  128.     (?\333 . nil)                       ; (block)
  129.     (?\334 . nil)                       ; (block)
  130.     (?\335 . ?\246)                     ; brokenbar
  131.     (?\336 . ?\314)                     ; Igrave
  132.     (?\337 . nil)                       ; (block)
  133.     (?\340 . ?\323)                     ; Oacute
  134.     (?\341 . ?\337)                     ; germandbls
  135.     (?\342 . ?\324)                     ; Ocircumflex
  136.     (?\343 . ?\322)                     ; Ograve
  137.     (?\344 . ?\365)                     ; otilde
  138.     (?\345 . ?\325)                     ; Otilde
  139.     (?\346 . ?\265)                     ; mu
  140.     (?\347 . ?\336)                     ; Thorn
  141.     (?\350 . ?\376)                     ; thorn
  142.     (?\351 . ?\332)                     ; Uacute
  143.     (?\352 . ?\333)                     ; Ucircumflex
  144.     (?\353 . ?\331)                     ; Ugrave
  145.     (?\354 . ?\375)                     ; yacute
  146.     (?\355 . ?\335)                     ; Yacute
  147.     (?\356 . ?\257)                     ; macron
  148.     (?\357 . ?\264)                     ; acute
  149.     (?\360 . ?\255)                     ; hyphen
  150.     (?\361 . ?\261)                     ; plusminus
  151.     (?\362 . nil)                       ; (double underscore)
  152.     (?\363 . ?\276)                     ; threequarters
  153.     (?\364 . ?\266)                     ; paragraph
  154.     (?\365 . ?\247)                     ; section
  155.     (?\366 . ?\367)                     ; divide
  156.     (?\367 . ?\270)                     ; cedilla (ogonek?)
  157.     (?\370 . ?\260)                     ; degree (ring?)
  158.     (?\371 . ?\250)                     ; dieresis
  159.     (?\372 . ?\267)                     ; periodcentered
  160.     (?\373 . ?\271)                     ; onesuperior
  161.     (?\374 . ?\263)                     ; threesuperior
  162.     (?\375 . ?\262)                     ; twosuperior
  163.     (?\376 . nil)                       ; (centered square)
  164.     (?\377 . ?\240)                     ; (NBS)
  165.     ))
  166.  
  167. (defun cp850-iso-display-enable ()
  168.   "Enable translation of code page 850 to ISO 8859-1 for the display."
  169.   (mapcar (function (lambda (pair)
  170.                       (standard-display-ascii (car pair)
  171.                                               (if (cdr pair)
  172.                                                   (char-to-string (cdr pair))
  173.